import request from "@/utils/request";

const ACTIVITY_BASE_URL = "/api/v1";

const ActivityAPI = {
  // 活动信息接口
  /**
   * 获取活动信息分页列表
   * @param {Object} params 查询参数
   * @returns {Promise} 请求结果
   */
  getActivityPage(params) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activities/page`,
      method: "get",
      params,
    });
  },

  /**
   * 获取活动信息表单数据
   * @param {number} id 活动信息ID
   * @returns {Promise} 请求结果
   */
  getActivityForm(id) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activities/${id}/form`,
      method: "get",
    });
  },

  /**
   * 新增活动信息
   * @param {Object} data 活动信息表单数据
   * @returns {Promise} 请求结果
   */
  addActivity(data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activities`,
      method: "post",
      data,
    });
  },

  /**
   * 修改活动信息
   * @param {number} id 活动信息ID
   * @param {Object} data 活动信息表单数据
   * @returns {Promise} 请求结果
   */
  updateActivity(id, data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activities/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 删除活动信息
   * @param {string} ids 活动信息ID，多个以英文逗号(,)分割
   * @returns {Promise} 请求结果
   */
  deleteActivity(ids) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activities/${ids}`,
      method: "delete",
    });
  },

  // 活动类型接口
  /**
   * 获取活动类型分页列表
   * @param {Object} params 查询参数
   * @returns {Promise} 请求结果
   */
  getActivityTypePage(params) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-types/page`,
      method: "get",
      params,
    });
  },

  /**
   * 获取活动类型表单数据
   * @param {number} id 活动类型ID
   * @returns {Promise} 请求结果
   */
  getActivityTypeForm(id) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-types/${id}/form`,
      method: "get",
    });
  },

  /**
   * 新增活动类型
   * @param {Object} data 活动类型表单数据
   * @returns {Promise} 请求结果
   */
  addActivityType(data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-types`,
      method: "post",
      data,
    });
  },

  /**
   * 修改活动类型
   * @param {number} id 活动类型ID
   * @param {Object} data 活动类型表单数据
   * @returns {Promise} 请求结果
   */
  updateActivityType(id, data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-types/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 删除活动类型
   * @param {string} ids 活动类型ID，多个以英文逗号(,)分割
   * @returns {Promise} 请求结果
   */
  deleteActivityType(ids) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-types/${ids}`,
      method: "delete",
    });
  },

  // 活动参与记录接口
  /**
   * 获取活动参与记录分页列表
   * @param {Object} params 查询参数
   * @returns {Promise} 请求结果
   */
  getActivityParticipantPage(params) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-participants/page`,
      method: "get",
      params,
    });
  },

  /**
   * 获取活动参与记录表单数据
   * @param {number} id 活动参与记录ID
   * @returns {Promise} 请求结果
   */
  getActivityParticipantForm(id) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-participants/${id}/form`,
      method: "get",
    });
  },

  /**
   * 新增活动参与记录
   * @param {Object} data 活动参与记录表单数据
   * @returns {Promise} 请求结果
   */
  addActivityParticipant(data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-participants`,
      method: "post",
      data,
    });
  },

  /**
   * 修改活动参与记录
   * @param {number} id 活动参与记录ID
   * @param {Object} data 活动参与记录表单数据
   * @returns {Promise} 请求结果
   */
  updateActivityParticipant(id, data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-participants/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 删除活动参与记录
   * @param {string} ids 活动参与记录ID，多个以英文逗号(,)分割
   * @returns {Promise} 请求结果
   */
  deleteActivityParticipant(ids) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-participants/${ids}`,
      method: "delete",
    });
  },

  // 活动评价接口
  /**
   * 获取活动评价分页列表
   * @param {Object} params 查询参数
   * @returns {Promise} 请求结果
   */
  getActivityRatingPage(params) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-ratings/page`,
      method: "get",
      params,
    });
  },

  /**
   * 获取活动评价表单数据
   * @param {number} id 活动评价ID
   * @returns {Promise} 请求结果
   */
  getActivityRatingForm(id) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-ratings/${id}/form`,
      method: "get",
    });
  },

  /**
   * 新增活动评价
   * @param {Object} data 活动评价表单数据
   * @returns {Promise} 请求结果
   */
  addActivityRating(data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-ratings`,
      method: "post",
      data,
    });
  },

  /**
   * 修改活动评价
   * @param {number} id 活动评价ID
   * @param {Object} data 活动评价表单数据
   * @returns {Promise} 请求结果
   */
  updateActivityRating(id, data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-ratings/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 删除活动评价
   * @param {string} ids 活动评价ID，多个以英文逗号(,)分割
   * @returns {Promise} 请求结果
   */
  deleteActivityRating(ids) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-ratings/${ids}`,
      method: "delete",
    });
  },

  // 活动预算接口
  /**
   * 获取活动预算分页列表
   * @param {Object} params 查询参数
   * @returns {Promise} 请求结果
   */
  getActivityBudgetPage(params) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-budgets/page`,
      method: "get",
      params,
    });
  },

  /**
   * 获取活动预算表单数据
   * @param {number} id 活动预算ID
   * @returns {Promise} 请求结果
   */
  getActivityBudgetForm(id) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-budgets/${id}/form`,
      method: "get",
    });
  },

  /**
   * 新增活动预算
   * @param {Object} data 活动预算表单数据
   * @returns {Promise} 请求结果
   */
  addActivityBudget(data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-budgets`,
      method: "post",
      data,
    });
  },

  /**
   * 修改活动预算
   * @param {number} id 活动预算ID
   * @param {Object} data 活动预算表单数据
   * @returns {Promise} 请求结果
   */
  updateActivityBudget(id, data) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-budgets/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 删除活动预算
   * @param {string} ids 活动预算ID，多个以英文逗号(,)分割
   * @returns {Promise} 请求结果
   */
  deleteActivityBudget(ids) {
    return request({
      url: `${ACTIVITY_BASE_URL}/activity-budgets/${ids}`,
      method: "delete",
    });
  },
};

export default ActivityAPI; 